The invention relates to a apparatus and methods for accelerated processing of transactions on computer databases.
A computer database is a collection of data records, each having one or more logical keys that serve as "names" for the records. Typically, when an application program requests access to a record in the database, it presents a logical key value to a database manager program, which in turn consults information from an index kept on disk or in memory to map the logical key value to a record address value. This record address value specifies the location on the disk where the data record(s) associated with the logical key value is to be found. Thus, the database index functions very much like a book's index: a reader provides a logical key value (the topic of interest), and the index in return provides a record address value (the page number) where the information is to be found.
A database may have multiple keys. Typically one is selected as a "primary key" that provides unambiguous and rapid access to the record, and "secondary keys" provide access that is either slower or less specific to a single record. For instance, an employee database may use employee number as its primary key, and employee name and department number as secondary keys. The key index is a permanent part of the database as it resides on disk. It may either be stored in the same file as the data records themselves (like a table of contents bound in a common binding with the text of a book), or may reside in separate files (like the index/overview volume of a multi-volume encyclopedia.)
Known database management systems divide into two logical layers: an upper layer called the database manager provides a user interface (for instance, a database query language), and a lower layer called a database engine maintains the structure of the database, that is, the relationship between the logical keys and the physical data actually stored in the database file.